// 作用域与闭包面试题
function foo(a, b) {
  console.log(a, b) // 1 undefined
  return {
    fun1: function (c) {
      // 再次调用foo函数。
      return foo(c, a) //2  1
    },
  }
}

// 调用foo函数返回的是一个对象，该对象里面有个fun1属性。
// instance 是一个对象，fun1是该对象中的一个属性。
// fun1属性是一个函数，该函数调用了foo函数。即foo函数是一个闭包，a是闭包中的属性。
const instance = foo(1)
instance.fun1(2)
